package com.demo.test.other;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author gy
 * @date 2024/6/4
 */
public class HlyyReportConfig {
    /**
     * 除掉所有的 高速路点位  ，通过名称筛选   高速路点位不上报
     * 此时上报的点位共计 555 个
     * 按照默认规则走
     */
    @Test
    public void m1(){
        long startTime = System.currentTimeMillis();
        Integer[] arr = {1,2,3,4,5,6,7,9,10,12,13,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,710,711,712,714,715,716,717,719,720,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,892,917,918,919,926,928,929,930,931,932,933,934,935,936,937,938,939,940,941,951,952,953,954,955,956,957,958,959,960,961,962,963,964,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1083,1106,1107,1108,1109,1110,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1336,1338,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410};
        List<Integer> allDeviceIdList=  Arrays.asList(arr);

        List<String> needTypeList = new ArrayList<>();
        needTypeList.add("1024");
        needTypeList.add("131072");
        needTypeList.add("65536");
        needTypeList.add("2306");

        List<EventReportConfigBO> newList1 = new ArrayList<>();
        for (Integer deviceId : allDeviceIdList) {
            EventReportConfigBO configBO = new EventReportConfigBO();
            configBO.setDeviceId(deviceId);

            List<EventTypeReportTime> eventTypeReportTimeList = new ArrayList<>();

            for (String need : needTypeList) {
                EventTypeReportTime eventTypeReportTime = new EventTypeReportTime();
                eventTypeReportTime.setEventType(need);
                ArrayList<TimePeriod> timePeriods = new ArrayList<>();
                if (need.equals("1024")) {
                    TimePeriod timePeriod1 = new TimePeriod();
                    timePeriod1.setStartTime("07:00");
                    timePeriod1.setEndTime("09:30");
                    TimePeriod timePeriod2 = new TimePeriod();
                    timePeriod2.setStartTime("17:00");
                    timePeriod2.setEndTime("18:30");

                    timePeriods.add(timePeriod1);
                    timePeriods.add(timePeriod2);
                }
                eventTypeReportTime.setNoReportTimeList(timePeriods);
                eventTypeReportTimeList.add(eventTypeReportTime);
            }
            configBO.setEventTypeReportTimeList(eventTypeReportTimeList);
            newList1.add(configBO);
        }
        List<EventReportConfigBO> finalList =
                newList1.stream().sorted(Comparator.comparing(EventReportConfigBO::getDeviceId))
                        .collect(Collectors.toList());


        long endTime = System.currentTimeMillis();
        System.out.println("执行耗时["+(endTime - startTime)+"]毫秒");
    }
}
